/**
 * 农产品信息管理
 */
$(function() {
    // 初始化表格
    var dataTable = $('#dataTable').DataTable({
        "processing": true,
        "serverSide": false,
        "ajax": {
            "url": "/agriProduct/list",
            "type": "GET",
            "dataSrc": function(json) {
                return json.data || [];
            }
        },
        "columns": [
            { "data": "agriProductId" },
            { "data": "productCode" },
            { "data": "productName" },
            { 
                "data": "category",
                "render": function(data) {
                    var categoryMap = {
                        "1": "粮食",
                        "2": "蔬菜",
                        "3": "水果",
                        "4": "肉禽蛋",
                        "5": "水产",
                        "6": "其他"
                    };
                    return '<span class="category-badge category-' + data + '">' + (categoryMap[data] || '未知') + '</span>';
                }
            },
            { "data": "origin" },
            { "data": "producer" },
            { 
                "data": "price",
                "render": function(data) {
                    return '¥' + parseFloat(data).toFixed(2);
                }
            },
            { "data": "unit" },
            { "data": "certification" },
            { 
                "data": "status",
                "render": function(data) {
                    if (data === '0') {
                        return '<span class="badge badge-success">正常</span>';
                    } else if (data === '1') {
                        return '<span class="badge badge-danger">停用</span>';
                    } else {
                        return '<span class="badge badge-secondary">未知</span>';
                    }
                }
            },
            {
                "data": null,
                "render": function(data, type, row) {
                    return '<div class="btn-group">' +
                        '<button type="button" class="btn btn-sm btn-info btn-view" data-id="' + row.agriProductId + '"><i class="fas fa-eye"></i></button>' +
                        '<button type="button" class="btn btn-sm btn-primary btn-edit" data-id="' + row.agriProductId + '"><i class="fas fa-edit"></i></button>' +
                        '<button type="button" class="btn btn-sm btn-danger btn-delete" data-id="' + row.agriProductId + '"><i class="fas fa-trash"></i></button>' +
                        '</div>';
                }
            }
        ],
        "order": [[0, "desc"]],
        "language": {
            "url": "//cdn.datatables.net/plug-ins/1.10.21/i18n/Chinese.json"
        }
    });

    // 搜索按钮点击事件
    $('#btnSearch').click(function() {
        var params = {};
        $('#searchForm').serializeArray().forEach(function(item) {
            if (item.value) {
                params[item.name] = item.value;
            }
        });

        dataTable.ajax.url('/agriProduct/list?' + $.param(params)).load();
    });

    // 重置按钮点击事件
    $('#btnReset').click(function() {
        $('#searchForm')[0].reset();
        dataTable.ajax.url('/agriProduct/list').load();
    });

    // 新增按钮点击事件
    $('#btnAdd').click(function() {
        resetForm();
        $('#productModalLabel').text('新增农产品信息');
        $('#productModal').modal('show');
    });

    // 导出按钮点击事件
    $('#btnExport').click(function() {
        var params = {};
        $('#searchForm').serializeArray().forEach(function(item) {
            if (item.value) {
                params[item.name] = item.value;
            }
        });

        // 构建导出URL
        var exportUrl = '/agriProduct/export';
        if (Object.keys(params).length > 0) {
            exportUrl += '?' + $.param(params);
        }

        // 触发下载
        window.location.href = exportUrl;
    });

    // 查看按钮点击事件
    $(document).on('click', '.btn-view', function() {
        var id = $(this).data('id');
        $.ajax({
            url: '/agriProduct/' + id,
            type: 'GET',
            success: function(res) {
                if (res.code === 200) {
                    var data = res.data;
                    // 填充数据到查看模态框
                    $('#viewProductName').text(data.productName || '');
                    
                    // 设置类别
                    var categoryMap = {
                        "1": "粮食",
                        "2": "蔬菜",
                        "3": "水果",
                        "4": "肉禽蛋",
                        "5": "水产",
                        "6": "其他"
                    };
                    var categoryText = categoryMap[data.category] || '未知';
                    $('#viewCategory').text(categoryText).attr('class', 'category-badge category-' + data.category);
                    
                    $('#viewPrice').text(data.price ? parseFloat(data.price).toFixed(2) : '');
                    $('#viewUnit').text(data.unit || '');
                    $('#viewSpecification').text(data.specification || '无');
                    $('#viewCertification').text(data.certification || '无');
                    $('#viewProductCode').text(data.productCode || '');
                    $('#viewOrigin').text(data.origin || '');
                    $('#viewProducer').text(data.producer || '');
                    
                    // 格式化日期
                    var produceDate = data.produceDate ? new Date(data.produceDate).toLocaleDateString() : '无';
                    $('#viewProduceDate').text(produceDate);
                    
                    $('#viewShelfLife').text(data.shelfLife || '无');
                    $('#viewStorageCondition').text(data.storageCondition || '无');
                    
                    // 设置状态
                    var statusText = data.status === '0' ? '正常' : (data.status === '1' ? '停用' : '未知');
                    $('#viewStatus').text(statusText);
                    
                    // 格式化创建时间
                    var createTime = data.createTime ? new Date(data.createTime).toLocaleString() : '无';
                    $('#viewCreateTime').text(createTime);
                    
                    $('#viewDescription').text(data.description || '无');
                    $('#viewRemark').text(data.remark || '无');
                    
                    // 设置图片
                    if (data.imageUrl) {
                        $('#viewImage').attr('src', data.imageUrl).show();
                        $('#viewImageContainer').show();
                    } else {
                        $('#viewImageContainer').hide();
                    }
                    
                    $('#viewProductModal').modal('show');
                } else {
                    alert('获取农产品信息失败：' + res.msg);
                }
            },
            error: function() {
                alert('获取农产品信息请求失败，请稍后再试');
            }
        });
    });

    // 编辑按钮点击事件
    $(document).on('click', '.btn-edit', function() {
        var id = $(this).data('id');
        resetForm();
        $('#productModalLabel').text('编辑农产品信息');
        
        $.ajax({
            url: '/agriProduct/' + id,
            type: 'GET',
            success: function(res) {
                if (res.code === 200) {
                    var data = res.data;
                    // 填充表单数据
                    $('#agriProductId').val(data.agriProductId);
                    $('#modalProductCode').val(data.productCode);
                    $('#modalProductName').val(data.productName);
                    $('#modalCategory').val(data.category);
                    $('#modalOrigin').val(data.origin);
                    $('#modalProducer').val(data.producer);
                    
                    // 处理日期格式
                    if (data.produceDate) {
                        var date = new Date(data.produceDate);
                        var year = date.getFullYear();
                        var month = ('0' + (date.getMonth() + 1)).slice(-2);
                        var day = ('0' + date.getDate()).slice(-2);
                        $('#modalProduceDate').val(year + '-' + month + '-' + day);
                    }
                    
                    $('#modalPrice').val(data.price);
                    $('#modalUnit').val(data.unit);
                    $('#modalSpecification').val(data.specification);
                    $('#modalShelfLife').val(data.shelfLife);
                    $('#modalStorageCondition').val(data.storageCondition);
                    $('#modalCertification').val(data.certification);
                    $('#modalImageUrl').val(data.imageUrl);
                    $('#modalStatus').val(data.status);
                    $('#modalDescription').val(data.description);
                    $('#modalRemark').val(data.remark);
                    
                    // 显示图片预览
                    if (data.imageUrl) {
                        $('#imagePreview').attr('src', data.imageUrl);
                        $('#imagePreviewContainer').show();
                    }
                    
                    $('#productModal').modal('show');
                } else {
                    alert('获取农产品信息失败：' + res.msg);
                }
            },
            error: function() {
                alert('获取农产品信息请求失败，请稍后再试');
            }
        });
    });

    // 删除按钮点击事件
    var deleteId = null;
    $(document).on('click', '.btn-delete', function() {
        deleteId = $(this).data('id');
        $('#deleteModal').modal('show');
    });

    // 确认删除按钮点击事件
    $('#btnConfirmDelete').click(function() {
        if (deleteId) {
            $.ajax({
                url: '/agriProduct/' + deleteId,
                type: 'DELETE',
                success: function(res) {
                    if (res.code === 200) {
                        $('#deleteModal').modal('hide');
                        dataTable.ajax.reload();
                        alert('删除成功');
                    } else {
                        alert('删除失败：' + res.msg);
                    }
                },
                error: function() {
                    alert('删除请求失败，请稍后再试');
                }
            });
        }
    });

    // 保存按钮点击事件
    $('#btnSave').click(function() {
        // 表单验证
        var form = $('#productForm')[0];
        if (!form.checkValidity()) {
            form.reportValidity();
            return;
        }
        
        // 收集表单数据
        var formData = {};
        $('#productForm').serializeArray().forEach(function(item) {
            formData[item.name] = item.value;
        });
        
        // 判断是新增还是编辑
        var isEdit = !!formData.agriProductId;
        var url = '/agriProduct';
        var type = isEdit ? 'PUT' : 'POST';
        
        $.ajax({
            url: url,
            type: type,
            contentType: 'application/json',
            data: JSON.stringify(formData),
            success: function(res) {
                if (res.code === 200) {
                    $('#productModal').modal('hide');
                    dataTable.ajax.reload();
                    alert(isEdit ? '编辑成功' : '新增成功');
                } else {
                    alert((isEdit ? '编辑' : '新增') + '失败：' + res.msg);
                }
            },
            error: function() {
                alert((isEdit ? '编辑' : '新增') + '请求失败，请稍后再试');
            }
        });
    });

    // 图片上传预览
    $('#modalImageFile').change(function() {
        var file = this.files[0];
        if (file) {
            var reader = new FileReader();
            reader.onload = function(e) {
                // 这里应该上传图片到服务器，然后获取URL
                // 为了演示，我们直接使用本地预览
                $('#imagePreview').attr('src', e.target.result);
                $('#modalImageUrl').val(e.target.result); // 实际应该是服务器返回的URL
                $('#imagePreviewContainer').show();
            };
            reader.readAsDataURL(file);
        }
    });

    // 重置表单
    function resetForm() {
        $('#productForm')[0].reset();
        $('#agriProductId').val('');
        $('#imagePreviewContainer').hide();
        $('#imagePreview').attr('src', '');
        $('#modalImageUrl').val('');
    }
}); 